Systems and methods for terminating communication requests in an internet protocol environment

ABSTRACT

A IP telephony service allows customers to form user groups. Each user group can include multiple members, each of whom have their own telephony device. A group identifier is assigned to each user group. When an incoming communication directed to the user group identifier is received by the service, the service obtains handling instructions for the user group that specify how the incoming communication is to be terminated to the members of the user group. The service then terminates the incoming communication to one or more members of the user group based on those handling instructions.

This application is a Continuation of application Ser. No. 12/841,285,filed Jul. 22, 2010, which is itself a Continuation of application Ser.No. 12/822,970, filed Jun. 25, 2010, the entire contents of both ofwhich are incorporated herein by reference.

BACKGROUND OF THE TECHNOLOGY

The technology is related to Voice over Internet Protocol (VOIP)telephone systems which connect telephone calls to or from devices usingdata packet communications. In a typical VOIP system, users can placeand receive telephone calls using IP based telephones, computers runningIP telephony software, or via a normal analog telephone which isconnected to the Internet via a telephone adapter. In each of theseinstances, the device which sends and receives data packets over anetwork has a device identification number. The device identificationnumber is used by the VOIP telephony service to help route calls to theappropriate devices.

For example, assume that a customer of a VOIP telephony service utilizesan IP telephone to place and receive telephone calls. When another partycalls the customer's telephone number, the call is initially routed tothe VOIP telephony service provider. The VOIP telephony service uses thedialed telephone number to determine the identification number of thecustomer's IP telephone. The VOIP telephony service provider thenconnects the call to that IP telephone.

In such a system, each customer's telephone number is typicallyassociated with the identification number of only a single IP telephonydevice. In some instances, a single telephone number may be associatedwith multiple IP telephony devices. However, each of those IP telephonydevices would be associated with a single customer or user account. Inother words, there is a one-to-one correspondence between telephonenumbers and users/accounts.

In those instances where a customer has multiple IP telephony devicesassociated with a single telephone number, when a call is received forthat customer, the VOIP telephony service might ring all of thecustomer's telephony devices at the same time, and then connect the callto whichever device answers first. Alternatively, the VOIP telephonyservice might ring one of the customer's telephony devices first, basedon call handling instructions. If the first device does not answer thecall, the VOIP telephony service might then ring the second device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of various elements which may be associated with aVOIP telephony system and a typical PSTN;

FIG. 2 is a diagram of various elements of a processor which can be partof a VOIP telephony system;

FIG. 3 is a diagram illustrating how various IP telephony devices andanalog and cellular telephones can be associated with user groups;

FIG. 4 is a diagram illustrating how various IP telephony devices andanalog and cellular telephones can be associated with different usergroups and different billing groups;

FIG. 5 is a diagram illustrating steps of a method of connecting atelephone call;

FIG. 6 is a diagram of steps of another method of connecting a telephonecall;

FIG. 7 is a diagram of elements of a system for delivering SMS messagesto telephony devices;

FIG. 8 is a diagram of steps of a method of delivering SMS textmessages; and

FIG. 9 is a diagram of steps of a method of delivering instant messagesacross multiple instant messaging platforms.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Various different elements which can be a part of a VOIP telephonysystem are illustrated in FIG. 1. As shown therein, an IP telephonyservice 120 enables connection of telephone calls between its owncustomers and other parties via data communications that pass over adata network. As illustrated in FIG. 1, the data network is commonly theInternet. The IP telephony service 120 is connected directly to theInternet 110. In addition, the IP telephony service 120 is connected tothe publicly switched telephone network (PSTN) 130 via a gateway 122.

The gateway 122 allows users and devices that are connected to the PSTNto connect with users and devices that are reachable through the IPtelephony service 120, and vice versa. In some instances, the gatewaywould be a part of the IP telephony service 120. In other instances, thegateway 122 could be maintained by a third party.

Customers of the VOIP telephony service 120 can place and receivetelephone calls using an IP telephone 108 that is connected to theInternet 110. Such an IP telephone could be connected to an Internetservice provider via a wired connection or via a wireless router. Insome instances, the IP telephone 108 could utilize a cellular telephonesystem to access the Internet.

Alternatively, a customer could utilize a normal analog telephone 102 awhich is connected to the Internet 110 via a telephone adapter 104. Thetelephone adapter converts analog signals from the telephone into datasignals that pass over the Internet 110, and visa versa. Also, asillustrated in FIG. 1, multiple analog telephones 102 a, 102 b and 102 ccould all be coupled to the same telephone adaptor 104. Thisconfiguration is common where all of the analog telephones 102 a, 102 band 102 c are located in a residence or business, and all of thetelephones are connected to the same telephone adapter. With this typeof a configuration, all of the analog telephones 102 a, 102 b, 102 cshare the same telephone number assigned to the telephone adaptor 104.

In addition, a customer could utilize a soft-phone client running on acomputer 106 to place and receive IP based telephone calls, and toaccess other IP telephony services. In some instances, the soft-phoneclient could be assigned its own telephone number. In other instances,the soft-phone client could be associated with a telephone number thatis also assigned to an IP telephone 108, or to a telephone adaptor 104that is connected one or more analog telephones.

A third party using an analog telephone 132 which is connected to thePSTN 130 may call a customer of the VOIP telephony service 120. In thisinstance, the call is initially connected from the analog telephone 132to the PSTN 130, and then from the PSTN 130, through the gateway 122 tothe VOIP telephony service 120. The VOIP telephony service 120 wouldthen route the call to the customer's IP telephony device. A third partyusing a cellular telephone 134 could also place a call to a VOIPtelephony service customer, and the connection would be established in asimilar manner, although the first link would involve communicationsbetween the cellular telephone 134 and a cellular telephone network. Forpurposes of this explanation, the cellular telephone network isconsidered part of the PSTN 130.

In addition, mobile computing devices which include cellular telephonecapabilities could also be used to place telephone calls to customers ofthe VOIP telephony service. A mobile computing device 136 as illustratedin FIG. 1 might connect to the PSTN 130 using its cellular telephonecapabilities. However, such devices might also have the ability toconnect wirelessly via some other means. For instance, a mobilecomputing device 136 might communicate with a wireless data router toconnect the mobile computing device 136 directly to a data network, suchas the Internet 110. In this instance, communications between The mobilecomputing device 136 and other parties could be entirely carried by datacommunications which pass from the mobile computing device directly to adata network 110. Of course, alternate embodiments could utilize anyother form of wireless communications path to enable communications.

Users of the IP telephony service 120 are able to access the servicefrom virtually any location where they can connect to the Internet.Thus, a customer could register with an IP telephony service provider inthe U.S., and that customer could then use an IP telephone 142 locatedin a country outside the U.S. to access the services. Likewise, thecustomer could also utilize a computer 140 outside the U.S. that isrunning a soft-phone client to access the IP telephony services.

FIG. 2 illustrates elements of a computer processor that can be used aspart of the VOIP telephony service 120 to accomplish various functions.The VOIP telephony service 120 could include multiple processors 150located at various locations in the system, along with their operatingcomponents and programming, each carrying out a specific or dedicatedportion of the functions performed by the VOIP based telephony service120.

The processor 150 shown in FIG. 2 may be one of any form of a generalpurpose computer processor used in accessing an IP-based network, suchas a corporate intranet, the Internet or the like. The processor 150comprises a central processing unit (CPU) 152, a memory 154, and supportcircuits 156 for the CPU 152. The processor 150 also includes provisions158/160 for connecting the processor 150 to customer equipment and toservice provider agent equipment, as well as possibly one or moreinput/output devices (not shown) for accessing the processor and/orperforming ancillary or administrative functions related thereto. Theprovisions 158/160 are shown as separate bus structures in FIG. 2;however, they may alternately be a single bus structure withoutdegrading or otherwise changing the intended operability of theprocessor 150.

The memory 154 is coupled to the CPU 152. The memory 154, orcomputer-readable medium, may be one or more of readily available memorysuch as random access memory (RAM), read only memory (ROM), floppy disk,hard disk, flash memory or any other form of digital storage, local orremote. The support circuits 156 are coupled to the CPU 152 forsupporting the processor in a conventional manner. These circuitsinclude cache, power supplies, clock circuits, input/output circuitryand subsystems, and the like.

A software routine 162, when executed by the CPU 152, causes theprocessor 150 to perform processes of the disclosed embodiments, and isgenerally stored in the memory 154. The software routine 162 may also bestored and/or executed by a second CPU (not shown) that is remotelylocated from the hardware being controlled by the CPU 152. Also, thesoftware routines could also be stored remotely from the CPU. Forexample, the software could be resident on servers and memory devicesthat are located remotely from the CPU, but which are accessible to theCPU via a data network connection.

The software routine 162, when executed by the CPU 152, transforms thegeneral purpose computer into a specific purpose computer that performsone or more functions of the VOIP telephony service 120. Although theprocesses of the disclosed embodiments may be discussed as beingimplemented as a software routine, some of the method steps that aredisclosed therein may be performed in hardware as well as by a processorrunning software. As such, the embodiments may be implemented insoftware as executed upon a computer system, in hardware as anapplication specific integrated circuit or other type of hardwareimplementation, or a combination of software and hardware. The softwareroutine 162 of the disclosed embodiments is capable of being executed onany computer operating system, and is capable of being performed usingany CPU architecture.

In the following description, references will be made to an “IPtelephony device.” This term is used to refer to any type of devicewhich is capable of interacting with a VOIP telephony service tocomplete a telephone call. An IP telephony device could be an IPtelephone, a computer running IP telephony software, a telephone adapterwhich is itself connected to a normal analog telephone, or some othertype of device capable of communicating via data packets. An IPtelephony device could also be a cellular telephone or a portablecomputing device that runs a software client that enables the device toact as an IP telephone. Thus, a single device might be capable ofoperating as both a cellular telephone and an IP telephone.

Moreover, and as will be discussed below, certain devices that are nottraditionally used as telephony devices may act as telephony devicesonce they are configured with appropriate client software. Thus, somedevices that would not normally be considered telephony devices maybecome telephony devices or IP telephony devices once they are runningappropriate software.

As described above, a telephone number is typically only associated witha single customer of a VOIP telephone service, or at least to a singleaccount. More specifically, each telephone number is mapped to a singleUniform Resource Identifier (URI). Thus, there is a one-to-onecorrespondence between each telephone number and each. URI.

When the VOIP telephony service receives a telephone call directed toone of its customers, the VOIP telephony service first generates the URIfor that telephone number. The VOIP service then uses the URI to routethe call to an IP telephony device.

As illustrated in FIG. 1, multiple telephones 102 a, 102 b, 102 c canall physically be connected to a single telephone adaptor 104. When atelephone call is placed to the telephone number mapped to the telephoneadaptor 104, all of the telephones 102 a, 102 b, 102 c connected to thetelephone adaptor 104 will ring simultaneously. If each of thetelephones 102 a, 102 b and 102 c are used by different parties, such asin a residence or business, the call would ring at multiple telephonydevices associated with multiple different users. However, this scenariois limited to situations where multiple telephones are physically wiredto, and co-located with, the telephone adaptor 104.

One way to get around these limitations of the point-to-point nature ofVOIP telephone systems is to change the mapping scheme from a systemwhere each telephone number is mapped to a single URI, to a system whereeach telephone number is mapped to a group of users. With this sort ofmapping, it is possible to route an incoming telephone call to multipledifferent telephony devices, even when the telephony devices are notco-located and/or not physically coupled to the same telephone adaptor.

To accomplish this sort of mapping, the VOIP telephony service maintainsone or more mapping databases. The mapping databases tie individualtelephone numbers to the device IDs of multiple IP telephony devicesthat are registered with the VOIP telephony system. Each time that anincoming telephone call is received by the VOIP telephony system, thesystem consults the mapping database to determine if the dialedtelephone number is tied to multiple device IDs. If so, in someembodiments, the IP telephony system generates multiple URIs, one foreach of the device IDs tied to the telephone number. The multiple URIswould be used to send the call, substantially simultaneously, to all ofthe IP telephony devices. All of the IP telephony devices would begin toring, and the system would complete the call to the first IP telephonydevice to answer.

In actual fact, the calls placed to the IP telephony devices may not besent absolutely simultaneously, but rather in very rapid succession. Andas a result, all of the IP telephony devices would start ringing atapproximately the same time. In the following description and claims,the words “simultaneous” and “simultaneously” are intended to coversituations where the described events occur at the same time, or veryclosely in time. Thus, these words should not be limited to situationsthat require the events to be absolutely simultaneous.

The mapping databases utilized by the VOIP telephony service might alsotie an individual telephone number to both device IDs of IP telephonydevices registered with the system, and to one or more telephone numbersassociated with telephony devices that are not registered with thesystem. For example, the telephony devices not registered with thesystem could be analog telephones or cellular telephones that are onlyreachable through the PSTN. Alternatively, a telephony device that isnot registered with the system could be an IP based telephony devicethat is registered with some other VOIP telephony system.

In those instances where a single telephone number is tied to both IPtelephony devices registered with the system, and telephony devices notregistered with the system, the mapping database may include the deviceIDs for the IP telephony devices registered with the system, and thetelephone numbers of the telephony devices not registered with thesystem. In other instances, the mapping database may include some otherreference to the telephony devices registered with the system, such asthe URI for the telephony devices.

When an incoming telephone call is received for a telephone number thatis mapped to multiple telephony devices, the VOIP telephony system maygenerate and/or use URIs for the IP telephony devices registered withthe system to send the call to those IP telephony devices. The systemmay also send/forward the call to the telephone numbers of the telephonedevices not registered with the system.

With this new mapping scheme, one can terminate telephony communicationrequests to multiple telephony devices belonging to multiple differentusers. The telephony devices need not be co-located with or wired to thesame telephone adaptor. Thus, the new mapping scheme overcomes theproblems noted above for a mapping scheme where each telephone number ismapped to only a single URI.

As will be explained in more detail below, the way in which an incomingcall is handled can vary. Also, the users of the system may be able tospecify the call handling procedures. Thus, in some embodiments, thetelephony system might not simultaneously ring all of the telephonydevices corresponding to a particular telephone number. Somealternatives to this procedure are discussed below.

The person who originally established an account connected with aparticular telephone number will be referred to as the account owner.The account owner will be able to tie the telephone number for theaccount to a group of users. This could be done when the account isfirst established, or at any point in time thereafter.

When an account owner wishes to create a group of users that are to betied to a particular telephone number, the account owner would need toprovide the IP telephony service with information about each of themembers of the group. This could include the telephone numbers for thegroup members, regardless of whether those telephone numbers areregistered with the IP telephony service or another separate telephonyservice. This could also or alternatively include the device IDs for thegroup members' telephony devices. In some instances, the account ownerwould be asked for e-mail addresses for the group members. In thisinstance, the system could then send e-mail messages to the groupmembers that facilitate enrolling the members in the group. Any otherform of identifying information could also be provided in an effort togive the IP telephony system the information required for the system toroute calls, SMS messages and the like to the telephony devices used bythe group members.

If the account owner provides the e-mail addresses of the group members,the IP telephony system could then send an e-mail message to each of themembers, and that e-mail message could include instructions about how tojoin the group. This could include requests to provide identifyinginformation, an alias name, and possibly passwords. This could alsoinclude instructions about how to download and install software on theuser's telephony devices.

The account owner, and/or the group members themselves may also be ableto provide alias names for themselves that will be presented to othermembers of the group for various purposes. For instance, the groupmembers may be able to utilize a graphical user interface to forwardcalls to other members, to send calls into the voice mailboxes of othermembers, or to call other members, and the alias names of the groupmembers could be shown on the graphical user interfaces.

Once a group of users has been established, the account owner and/or themembers of the group may be able to alter or update the personalinformation tied to each of the users. For example, the users may beable to change their alias names, update passwords, or register newtelephony devices with the system.

The account owner may also be able to restrict the abilities of theindividual group members to perform certain functions. For instance, theaccount owner may be able to restrict the group members' ability toplace certain toll generating telephone calls under the group telephonenumber, such as long distance or international calls. Likewise, theaccount owner may be able to restrict the group members' ability to sendcertain types of SMS messages, as will be explained more fully below.

Each group member may be able to register multiple telephony deviceswith the system. Thus, a single group member may have multiple telephonydevices, each of which receives calls or SMS messages that are beingdirected to the member. And because of the distributed nature of an IPbased telephony system, those telephony devices could be located atvirtually any location throughout the world.

When a single telephone number is mapped to a group of users, there neednot be any pre-existing relationship between the members of the group.Nor is it necessary for all of the members of a group to belong to thesame customer account or billing group. Moreover, as noted above, someof the users of the group need not even have an IP telephony deviceregistered with the VOIP system. Instead, some members might only use acellular telephone or an analog telephone that only connects through thePSTN, and where the telephone number of such devices is assigned by andcontrolled through a different telephony service. Further, some membersof the group may use electronic devices that are not traditionallyconsidered telephony devices, but which have been configured to act astelephony devices using appropriate software.

For example, assume that a user group is established for all of theimmediate members of a family. All of the telephony devices used by themembers of the family would be associated with that user group. Thiscould include IP telephony devices used by members of the family, aswell as cellular telephones and analog telephones that are carried by orused by the members of the family. The telephony devices might alsoinclude devices that can only send and receive text messages and/ore-mail, such as an Apple iTouch. A single telephone number is thenassociated with the user group in a mapping database. The singletelephone number could be the telephone number assigned to the family'shome telephony device, or some other number specifically assigned forthis purpose.

When a telephone call is placed to the telephone number associated withthe family's user group, the telephone call is routed to the IPtelephony service. The IP telephony service consults a mapping databaseto determine if the dialed telephone number corresponds to a user group.In this case, the IP telephony service would determine that the dialedtelephone number corresponds to the family user group. Then, asexplained above, the IP telephony service uses the information in themapping database to send the call to the telephony devices of all of themembers of the group. As noted above, this could include both IPtelephony devices registered with the system, as well as telephonydevices that are not registered with the system. The IP telephony systemmay use the information in the mapping database to create URIs that areused to send the call to IP telephony devices registered with thesystem. The IP telephony system may also forward the call to thetelephone numbers of telephony devices that are not associated with orregistered with the system.

In some instances, the IP telephony service would simultaneously ringall of the telephony devices associated with all of the members of auser group. The telephone call would be connected to the first telephonydevice to answer the call. In some instances, as soon as the call isconnected to one telephony device, all other telephony devices wouldstop ringing.

In other instances, the IP telephony service might not ring all of thetelephony devices associated with all of the members of a user group.For example, the IP service might instead only ring the telephonydevices for selected members of the group. Or the IP telephony servicemight only ring a single member of the group.

Call handling preferences that define how an incoming call is handledcould be specified by one or more members of the group. Those callhandling preferences could be specified by the users via a graphicaluser interface accessible on a webpage. Alternatively, users couldinteract with an Interactive Voice Response system to specify callhandling preferences. In still other instances, the users could speakwith a customer service representative to specify call handlingpreferences. Any method for specifying call handling preferences couldbe used, so long as the users are able to define how incoming and/oroutgoing calls are to be handled. The call handling preferences are thenstored in one or more databases maintained by the IP telephony service.

In some embodiments, all of the members of a group may be empowered toset and change the call handing preferences for the group. In otherinstances, only some members, or only one member, of the group may beempowered to set and change call handing preferences. Also, one mastermember of the group may be able to assign and/or revoke the ability toset and change call handling preferences to other members of the group.

The call handing preferences could include instructions about which ofthe telephony devices for which of the members should be rung when anincoming call directed to the group's telephone number is received. Thecall handing preferences could also include instructions about otheraspects of call handling.

For example, the call handing preferences could specify that if nomember of the group answers a call, the caller is to be directed to aparticular voice mailbox for one member of the group. Alternatively, thecaller could be directed into a voice mailbox that is accessible to allmembers of the group. In still other instances, the call handingpreferences might specify that the caller leave a voice message that isdelivered into the voice mailboxes of multiple members of the group.

In still other embodiments, if no member of the group answers theincoming call, the call handing preferences might indicate that the callshould be forwarded to a different specific telephone number, or thatthe call should be connected to a specific IP telephony device.Alternatively, the call handling preferences might indicate that if nomember of a first group answers the call, the call is to be redirectedto another group entirely. In this instance, the call handlingpreferences for that alternate group would determine how the call ishandled.

The call handing preferences might specify that when an incoming calldirected to a telephone number for a group is received, and thetelephony devices for multiple members of the group are rung, that thecall be connected to the first telephony device that answers. Inalternate embodiments, the call handling instructions might insteadindicate that the call should be connected to all telephony devices thatanswer the call. Or that all telephony devices should be rung for apredetermined period of time, even if one of the telephony devicesanswers the call before the predetermined period of time expires. Inthis instance, all telephony devices that answer within thepredetermined period of time could be connected to the calling party ina conference call arrangement.

When a multi-member group is mapped to a single telephone number, it ispossible that one member of the group may answer an incoming telephonecall that was meant for another member of the group. To help deal withthis situation, the IP telephony system provides users with a method toeasily forward the call to another member of the group.

In some embodiments, when a user answers an incoming telephone callmeant for another member of a group, the user could press a button orissue a command that calls up a list of the other members of the group.The user could then select one of the listed members, and the call wouldbe forwarded to that member.

The list of other group members could be presented to the user via agraphical user interface. In this instance, the user could make use of apointing device, press a numbered key, or utilize some other selectionmeans to choose the member to which the call is to be forwarded.

In other instances, an audio prompt could be played to the user, whereeach of the other group members correspond to a particular number orletter. The user would then make a selection by pressing a keycorresponding to the group member to which the call is to be forwarded.

In still other instances, the user might be able to simply issue aspeech command that is interpreted by the IP telephony system. Forexample, the user could speak the command “transfer call to John,” andthis spoken command would be interpreted by the system, and the systemwould thereafter transfer the call to John.

The list of group members presented to a user in these circumstancesmight also provide some indication about whether the other group membersare available to receive a call. A group member might be unavailablebecause they are already on another call and their telephony device isin use, or because their telephony device is temporarily disconnected orturned off.

For instance, if the other group members are listed on a graphical userinterface presented to the user, members who are available to receive acall could be indicated in some fashion, and/or members who areunavailable to receive a call could be indicated in some fashion. Theuser might be able to see this information while the user is stilltalking to the caller. Thus, the user may be able to inform the callerthat the desired group member is unavailable.

In addition to allowing a user to forward a call to another groupmember, the IP telephony system may also allow the user to send a callerinto a voice mailbox. The voice mailbox to which the caller is directedcould be one for the user who actually answered the call, or the voicemailbox for another group member. The methods by which the user woulddirect the caller into a voice mailbox could be the same or similar tothe methods of forwarding calls discussed above.

If a user is presented with a graphical user interface which indicateswhich of the other group members are available for a call, the userwould be able to decide whether to forward a caller on to another groupmember, or whether to send the caller into a voice mailbox for thatother group member. And because the user would initially be connected tothe caller, the user could inform the caller about how the call is goingto be handled. Also, this would allow the caller to request that he beconnected to a first group member, and if that person is unavailable fora call, the caller could then ask to be connected to an alternate groupmember.

The users may be able to control their individual telephony devices suchthat the telephony devices inform the IP telephony system about whetherthey are willing to receive incoming calls and messages. This wouldlikely be handled by a graphical user interface on the device itself.Thus, a user could set one or all of his telephony devices such that itwill not receive incoming calls.

In some embodiments, the ability to control whether a telephony devicewill receive incoming calls is performed on a device-by-device basis.Thus, a user could set one of his telephony devices to receive incomingcalls, while another device is set to reject or not receive incomingcalls. In other embodiments, this could be done on a user-by-user basis,such that the user could instruct the system not to ring any of histelephony devices when an incoming call is received. Some embodimentswill be capable of supporting both of these options alternatively orsimultaneously.

A user may also be able to control his telephony devices to eitherdecline an incoming call, or to simply silence the ringing on one ofmultiple telephony devices associated with the user. For instance, ifthe user opts to decline an incoming call, the system would stop ringingall of the telephony devices associated with that user. On the otherhand, if the user opts to silence the ringing on one of his telephonydevices, the user's other telephony devices may continue to ring.Further, declining an incoming call might cause the caller toimmediately be routed into the user's voice mailbox, whereas silencingthe ringing on one device would not.

In some instances, as described more fully below, a user's telephonydevice could be associated with both the telephone number of a group,and with a telephone number assigned to the individual user himself. Inthis instance, when an incoming call is received, the user's telephonydevice may provide different ringtones depending on which telephonenumber was called.

The call handing preferences for a group could also be dependant on thetime of day and/or the day of the week. For example, assume that a groupis established for a business, and that a single telephone number forthe business is mapped to multiple telephony devices used by theemployees of the business. The mapping database could list IP telephonesthat are located on the employee's desks, as well as cellular telephonescarried by the employees. In this scenario, the call handlinginstructions could indicate that between the hours of 9 am and 5 pm,incoming calls directed to the business telephone number should berouted to both the IP telephones on the employee's desks, as well as tothe employees' cellular telephones. However, the call handlingpreferences could also indicate that after 5 pm, incoming calls shouldonly be routed to the IP telephones on the employees' desks. The callhandling preferences might further indicate that after 7 pm, allincoming calls should be routed to a central voicemail system for thebusiness. Thus, the call handling instructions would be dependent on thetime of day.

In another example, assume that a single telephone number for a businessis mapped to three employee telephones. A first employee telephone islocated in New York, a second employee telephone is located in Chicago,and a third employee telephone is located in Los Angeles. The callhandling preferences for this group of users could specify that calls tothe business telephone number are to be sent to the first employeetelephone only between 9 am and 5 pm EST. The call handling preferencescould also indicate that calls to the business telephone number are tobe sent to the second employee telephone only between 9 am to 5 pm CST.Likewise, the call handling preferences could indicate that calls to thebusiness telephone number are to be sent to the third employee telephoneonly between 9 am to 5 pm PST. These call handling preferences are alsotime of day dependent, but the times vary depending on the location ofthe telephones. Thus, the time of day dependence of the call handlingpreferences varies for each individual telephony device.

Of course, many other ways of handling an incoming call could also bespecified, as would be apparent to one of ordinary skill in the art.

In the embodiments discussed above, it was assumed that a group of usersis tied to a particular telephone number through a mapping database. Inalternate embodiments, mapping databases could tie a group of users to agroup identifier other than a telephone number. Thus, a group of userscould be associated to any sort of identifier, label or identificationtool.

FIG. 3 illustrates how various different telephony devices can beassociated with individual user groups. As shown in FIG. 3, user group 1includes analog telephone 1 (314), analog telephone 2 (316) and cellulartelephone 2 (318). User group 2 includes IP telephony device 2 (302), IPtelephony device 3 (304), IP telephony device 4 (306) and cellulartelephone 1 (312). User group 3 includes IP telephony device 1 (300), IPtelephony device 2 (302), and IP telephony device 5 (308). User group 4includes IP telephony device 5 (308) and IP telephony 6 (310).

As illustrated in FIG. 3, an individual telephony device can beassociated with more than one user group. For example, IP telephonydevice 2 (302) is a member of both user group 2 and user group 3.Likewise, IP telephony device 5 (308) is associated with both user group3 and user group 4.

As explained above, each of the individual user groups would beassociated with at least one telephone number or group identifier. Insome instances, a user group could he associated with more than onetelephone number and/or group identifier.

As noted above, call handling instructions could specify how incomingcalls are to be handled for the individual groups. For example, and withreference to FIG. 3, user group 3 could include all of the IP telephonydevices associated with a single person. IP telephony device 2 (302)could be located at the user's office, IP telephony device 5 (308) couldbe located at the user's home, and IP telephony device 1 (300) could bea soft phone client which is running on the user's personal computer.When all of the IP telephony devices are registered as being part ofuser group 3, all of the devices can be simultaneously rung when atelephone call is placed to a telephone number associated with usergroup 3. However, the user could also specify that only certain IPtelephony devices associated with user group 3 should be rung duringcertain times of the day. For example, the user could specify that IPtelephony device 2 (302), which is located at the user's office, only berung between the hours of 8:00 a.m. and 6:00 p.m. The user could alsospecify that IP telephony device 5 (308) should only be rung between thehours of 5:00 p.m. and 8:00 a.m. As a result, when a telephone call isplaced to a telephone number associated with user group 3, IP telephonydevice 2 (302) would not ring after business hours. Likewise, IPtelephony device 5 (308) would not ring during business hours. However,IP telephony device 1 (300), which is the soft-phone client running onthe user's computer, would ring at all times of the day.

It is also possible for multiple telephone numbers and/or groupidentifiers to be associated with a single user group. In instanceswhere two or more numbers are associated with a user group, the callhandling instructions could differ depending on which of those numberswas called. For example, if first and second telephone numbers areassociated with a user group, the members of a user group could specifythat a first subset of all of the telephony devices associated with themembers of the user group should be rung when a call is placed to thefirst telephone number, but that a second subset of the telephonydevices should be rung when a call is placed to the second telephonenumber.

As also illustrated in FIG. 3, as long as a user is registered with a IPtelephony service, telephony devices which are not IP telephony devicescould form all or portions of a user group. User group 2 includescellular telephone 1 (312) which can only receive calls via the PSTN130. However, if the IP telephony service 120 receives a telephone callfor a telephone number associated with user group 2, depending on thecall handling instructions, the IP telephony service will cause cellulartelephone 1 (312) to ring along with IP telephony device 2 (302), IPtelephony device 3 (304) and IP telephony device 4 (306). The IPtelephony service would route a call to cellular telephone 1 (312)through the gateway 122 and the PSTN 130.

Likewise, user group I includes analog telephone 1 (314), analogtelephone 2 (316) and cellular telephone 2 (318), all of which onlyconnect through the PSTN 130. However, if a telephone number associatedwith user group 1 is received at the IP telephony service, the call canbe connected to those devices through the gateway 122 and the PSTN 130.

FIG. 4 illustrates that individual telephony devices can also beassociated with more than one billing group or customer account. Asshown in FIG. 4, user 1's work IP telephony device 400, user 2's work IPtelephony device 410 and user 3's work IP telephony device 412 are allassociated with billing group 1. This would typically mean that all ofthe calls made via the work IP telephony devices are paid for by abusiness. However, user 1's work IP telephony device 400 could also be apart of user group 1. User group 1 also includes user 1's cellulartelephone 402, user 1's home IP telephony device 1 (404) and user 1'shome IP telephony device 2 (406).

User 1 could specify that user 1's home telephone number be associatedwith user group 1. As a result, whenever a telephone call is placed touser 1's home telephone number, all the telephony devices in user group1 would be rung. However, when user 1 utilizes his work IP telephonydevice 400 to place a chargeable telephone call, the cost of the callwould be billed to billing group one. This allows user 1's work IPtelephony device to receive calls placed to both a work telephone numberand user 1's home telephone number, but this arrangement also results inchargeable calls placed by user 1's work IP telephony device 400 onlybeing billed to the business.

FIG. 4 also illustrates that user 1's home IP telephony devices (404)and (406) and user 1's soft-phone client 408 could be a part of billinggroup 2. Whenever the user utilizes one of those telephone devices toplace a chargeable call, the call would be charged to the user's home orpersonal IP telephony account. Because user 1's cellular telephone 402is not associated with billing group two, any calls placed through user1's cellular telephone 402 would be billed to a separate accountassociated with that cellular telephone.

In a similar manner, user group 2 includes user 3's work IP telephonydevice 412, user 3's home IP telephony device 414 and user 3's cellulartelephone 416. In this instance, user group 2 would be associated onlywith user 3's home telephone number. As a result, whenever a telephonecall is placed to user 3's home telephone number, all of user 3'stelephony devices would be rung.

In other instances, user group 2 could be associated both with user 3'shome telephone number and user 3's work telephone number. Whenever atelephone call is placed to either of those telephone numbers, all threeof user 3's telephony devices would be rung.

Moreover, a single telephony device might be associated with more thanone customer or billing account. FIG. 4 illustrates that user 3's workIP telephone device 412 is associated with both billing group 1 andbilling group 3. Billing group 1 would be a business account whichcovers calls made by user 1, user 2 and user 3's work IP telephonydevices. However, user 3's work IP telephony device is also associatedwith billing group 3. And user 3's home IP telephony device 414 is alsoa member of billing group 3. Thus, billing group 3 would be user 3'shome or personal account.

When a particular telephony device is associated with multiple billingaccounts, it will be necessary for the user to specify which account isto be charged whenever a call is placed. Or, alternatively, there may bea default assumption about which account should be charged, and thiswill only be altered if the user takes steps to cause a differentaccount to be charged. Aspects of these concepts are discussed in moredetail below.

FIG. 5 illustrates the steps of a method of handling an incoming call.As illustrated in FIG. 5, the method begins in step S500 where anincoming telephone call is received by a IP telephony service. In stepS502, the IP telephony service determines the user group which isassociated with the dialed telephone number. In step S504, the IPtelephony service then determines which telephony devices correspond tothat particular user group.

In step S506, the IP telephony service rings all of the telephonydevices associated with the user group. In step S508, the call isultimately connected to the telephony device which is first to answerthe call. As soon as the call is routed to one of the telephony devices,the ringing of the other telephony devices is halted.

As noted above, call handling instructions for a particular user groupcould be registered with the IP telephony service. The call handlinginstructions could instruct the system to ring only a subset of all ofthe telephony devices associated with a particular user group duringcertain times of the day or certain days of the week. The call handlinginstructions might also indicate that only a subset of all of thetelephony devices should be rung depending on which number was called.Further, the call handling instructions could indicate that only asubset of all of the numbers should be called depending on the identityor telephone number of the calling party. In those instances, in stepS508 of the method illustrated in FIG. 5, only a subset of the telephonydevices would be rung in accordance with those call handlinginstructions.

Typically if a telephone call is not answered, the call would be routedto a voice mailbox. When a call is being handled as described above, itis desirable to route the telephone call to a voice mailbox if the callis not answered. The call handling instructions for a particular usergroup could specify that unanswered calls be routed to a particularvoice mailbox. Those call handling instructions could also indicate thatone voice mailbox should be used during certain times of the day or daysof the week, and that a different voice mailbox should be used duringother times of the day or days of the week. The voice mailbox to whichan unanswered call is sent might also depend on the number that wascalled, or on the identity or telephone number of the calling party.

A user group might establish a voice mailbox which is to be commonlyused by all members of the group. In that instance, when a message isleft in the voice mailbox, all of the users may be able to retrieve andlisten to the message. However, the users might also specify that onlycertain members of the group are able to access and play messages leftin the voice mailbox.

If multiple members of the group are able to access and play messagesleft in a common voice mailbox, it is desirable to provide methods ofindicating to the users whether there is a new message which they havenot yet heard. For example, assume that two messages have been left in acommon voice mailbox for a particular user group. Assume also that afirst one of the members of the group has retrieved and played those twomessages. If a second member of the group then accesses the mailbox, thesystem would indicate to the second user that he has not yet heard thetwo messages. Likewise, if the first user again accesses the voicemailbox, the system would indicate to the first user that no new(unheard) messages have been left in the voice mailbox. Accordingly, aIP telephony service which is configured with user groups as describedabove may also include functionality for handling messages left in avoice mailbox.

The procedures for handling voice messages could also includepermissions to play and delete messages left in a voice mailbox.Alternatively, once a message has been left in a common voicemail for auser group, the message might be maintained until all of the users inthat group have instructed the system to delete the voice message.

In some embodiments, the system may transcribe voicemail messages andsend the transcription to members of the group. Here again, the callhandling instructions for the group could determine who receives atranscribed version of a voicemail message.

Another aspect of grouping users together in the mapping databaserelates to the originating telephone number that is communicated toother parties when a telephone number is dialed by a user. In knownsystems, each individual telephony device is assigned its own telephonenumber. When a user outdials a call, the telephone number of the user'stelephony device may be communicated to other parties. For example, thetelephone number of the user's telephony device can be included ascaller ID information that is communicated to the telephony device ofthe called party. The telephone number of the user's telephony devicewould then be displayed to the called party while the called party'stelephony device is ringing.

With a system as described above, a single telephony device can beassociated with multiple different telephone numbers. As a result, it ispossible for a call initiated by a single telephony device to originatefrom multiple different telephone numbers.

The IP system would also allow a user to specify preferences about howoutgoing calls are to appear to the called party. Those preferencescould indicate, for a particular telephony device, that a defaulttelephone number is to be used as the originating telephone number forall outgoing calls placed with the telephony device. However, on acall-by-call basis, the user may be able to select one of the othertelephone numbers associated with the telephony device to be used as theoriginating telephone number. In other embodiments, each time that auser places a call with a telephony device associated with multipletelephone numbers, the user will select the telephone number to be usedas the originating number.

For example, and with reference to FIG. 4, user 3's work IP telephonydevice 412 is associated with billing group 1 and also with user group2. This means that user 3's work IP telephony device 412 could receivecalls placed to user 3's home telephone number, and calls placed to acellular telephone number associated with user 3's cellular telephone416, as well as calls placed to user 3's work telephone number.

When user 3 wishes to place an outgoing call, user 3 could be providedwith the ability to select one of those three telephone numbers to bethe originating telephone number. For example when user 3 utilizes hiswork IP telephony device 412 to place a telephone call, the user couldspecify that the originating telephone number should be user 3's officetelephone number. In that instance, the call would be charged to billinggroup 1, and paid for by the business. Alternatively, the user couldspecify that the originating telephone number be user 3's home telephonenumber. In that instance, the call would be charged to the user's homeor personal account, under billing group 3, not to billing group 1.Thus, the user can individually select which originating telephonenumber should be used when a call is placed, and thus the billing groupthat should be charged for that telephone call. In other words, theselection of an originating telephone number might work to also selectthe billing group that is to be charged for a placing a call. In otherinstances, the selection of the originating telephone number could beindependent of the selection of the billing group to be charged.

In some instances, there may be a default decision about whichoriginating telephone number and/or which billing group should be used.In this instance, the user would have to take a positive action toselect a different originating telephone number or a different billingaccount. For example, whenever user 3 places a call with user 3's workIP telephony device 412, the system would assume that the user wishesthe call to originate from user 3's work telephone number and be billedto billing account 1. But when user 3 places a telephone call with user3's home IP telephony device, the system would assume that the callshould originate from user 3's home telephone number and be billed tobilling account 3. However, the user may be able to select an alternateoriginating number and/or an alternate billing account by providing aninstruction to the system when the call is placed.

The selection of a particular telephone number to be used as theoriginating telephone number could be made by the user via a graphicaluser interface. For instance, each time that a user dials a call, theuser may be presented with a menu asking the user to select theoriginating number to be used. Alternatively, if a default number is tobe used, it may be necessary for the user to take affirmative action tocall up a graphical user interface that allows the user to select theoriginating telephone number to be used.

In still other embodiments, the system might play an audio prompt to theuser asking which of multiple originating telephone numbers should beused. In this instance, the user could press a key or button, or use apointing device to select the originating number to be used.Alternatively, the user may be able to speak a response that isinterpreted by the system.

In still other embodiments, the user may be able to interact with thesystem using speech-based commands to select the originating telephonenumber that is to be used. A speech-based command could be initiated bythe user before, during or after the dialing instructions have beenprovided. And it might only be necessary to issue such a speech-basedcommand if the user wishes to deviate from the use of a defaultoriginating telephone number.

Likewise, in instances where it is possible for a user to make aselection about which account is to be billed for placing a call, theuser could select the billing account in the same way or in similar waysto those discussed above in connection with selecting the originatingtelephone number.

As also explained above, multiple different telephony devices can beassigned to a user group associated with a single telephone number. Forexample, assume that three telephony devices are assigned to a usergroup for a business, and all three telephony devices are associatedwith the business telephone number. Assume also that the first telephonydevice is located in New York, the second telephony device is located inChicago and the third telephony device is located in Los Angeles. Whenthe users of the three telephony devices place calls to other parties,all three telephony devices can use the same originating telephonenumber, which is the one assigned to the business. Thus, regardless ofwhich telephony device is used, all calls will appear to originate fromthe same number. This functionality was not possible with prior knownsystems.

FIG. 6 illustrates a method of placing a telephone call using a systemas described above. The method begins in step S600 where the customerhas placed an outgoing telephone call and the IP telephony servicereceives the call setup request from the customer. In step S602, the IPtelephony service checks to determine if the telephony device which isplacing a call is associated with multiple different telephone numbers.If not, the method proceeds to step S604 and the call is connected tothe dialed number. The customer's single telephone number would then becharged for the cost of placing that call in step S606.

If the telephony device used to place the telephone call is associatedwith multiple telephone numbers and/or billing accounts, then the IPtelephony service requests the customer to identify the originatingtelephone number which is to be used for this call. In step S610, the IPtelephony service then connects the call to the dialed telephone numberusing the originating telephone number specified in step S608. In stepS612, the party associated with the originating telephone number wouldthen be charged for that call.

In some instances, when the IP telephony service realizes that thetelephony device used to place a call is associated with multipletelephone numbers, the service provider could request that the useridentify the originating telephone number to be used for the call. Inother instances, the information about which originating telephonenumber to use could be included as part of the call setup request whichis originally received from the user in step S600. In still otherinstances, as noted above, the IP telephony system could make anassumption about which telephone number to use as the originatingtelephone number and/or billing account, and the IP telephony servicewould use a different telephone number and/or billing account only if soinstructed by the user.

In the user groups described above, a single telephony device can beassociated with multiple different user groups. Each of those usergroups could be associated with different telephone numbers. Likewise, asingle user group could be associated with multiple different telephonenumbers. As a result, when a call is being received at a particulartelephony device, that call could have been placed to any one ofmultiple different telephone numbers.

Because a telephony device can be associated with multiple differenttelephone numbers, it would be desirable for the telephony device todisplay the telephone number that was dialed by the calling party. Ifthis is done, the user will be able to determine which telephone numberwas dialed before he decides to answer the call. Many telephony devicesalready provide for a display of the telephone number of the party whoplaced the telephone call. However, such devices might also be modifiedto also display the telephone number which was dialed by the caller. Asa result, the user would see both the telephone number of the callingparty, and the telephone number that was dialed by the calling party.

Another way in which groups can be utilized is to allow members of agroup to easily place a call to another member of the group. In someembodiments, a user could utilize his telephony device to call up agraphical user interface that lists all the other members of the group.The user could then select one of the other members presented on thegraphical user interface to immediately place a telephone call to thatmember. In this example, it would not be necessary for the user to diala telephone number associated with the other member of the group. In asimilar fashion, a user could interact with a system of audio prompts toplace a call to another member of the group, or a user could issue aspeech command to place a call to another member of a group.

As explained above, the devices which can used by members of a group tosend and receive telephone calls need not be regular telephones. Insteadthe devices could simply be computing devices that are running software.In some situations, some or all of the devices used by the members ofthe group could be associated only with the single telephone number tiedto the group. In other words, the devices may not be associated withsome other independent telephone number. Under those circumstances, theability described above would allow one member of the group to place acall to the other member of the group without dialing a telephonenumber, and without even dialing the telephone number associated withthe group.

In a similar fashion, some embodiments of the system would allow a userto place a telephone call directed to the telephony device of a memberof some other group. Here again, the user would make use of a graphicaluser interface and/or speech commands as discussed above. In theseembodiments, the user would first need to capture or obtain some sort ofidentifier for the member of the other group that the user wishes tocall. Or the user could be able to utilize an identifier that isrecognizable to the IP telephony system, such as an e-mail address forthe person the user wishes to reach. The users would then specify thatidentifier to the IP telephony system, and the IP telephony system wouldestablish a call between the user's telephony device and the telephonydevice of some member of a completely different group.

A system as described above can also be used to deliver SMS textmessages to telephony devices associated with a user group. Typically,an SMS message would be directed to an individual telephone number. Whenthat telephone number is associated with a particular user group, theSMS message would then be sent to all or selected members of the groupbased upon message handling instructions, similar to the way thatincoming calls are directed based on call handling instructions, asdiscussed above.

In the following discussion, references are made to SMS messages. Thisterm is intended to encompass not only traditional SMS messages, butalso multimedia messaging service (MMS) messages. As is known to thoseskilled in the art, it is also possible to attach certain types of filesto MMS messages. MMS messages are processed in a highly similar fashionas SMS messages, although additional files are generally attached to anddelivered with MMS messages. The system and handling proceduresdescribed herein would apply equally to MMS messages. Thus, anyreference to SMS messages is intended to also encompass MMS messages.

Moreover, it is anticipated that different forms of messaging andmessage traffic may be developed in the future. For instance, audiomessaging may become more common in the future. The concepts disclosedand claimed herein will also be applicable to later developed forms ofmessaging and message traffic. Thus, the term “SMS message” used hereinis intended to cover any form of messaging traffic now in existence orlater developed.

FIG. 7 illustrates various elements of a system that could be used todeliver SMS messages to client telephony devices registered with an IPtelephony service. The dashed line surrounds those elements that, insome embodiments, would be owned and/or controlled by the IP telephonyservice 120. However, in alternate embodiments some of the elementsshown within the dashed line might not be owned and/or controlled by theIP telephony service 120. Likewise, in some embodiments, other elementsnot shown within the dashed lines might also be owned and/or controlledby the IP telephony service 120.

The system would rely upon one or more SMS gateways 702, 704 to deliverSMS messages from telephony devices that are registered with othertelephony systems. Likewise SMS messages that are generated by telephonydevices registered with the IP telephony service 120 would be sent tothe SMS gateways 702, 704 for delivery to telephony devices registeredwith other systems.

In some instances, the SMS gateways 702, 704 would be owned and/orcontrolled by the IP telephony service 120, and in other instances, theSMS gateways 702, 704 may be owned and/or controlled by third parties.The SMS gateways 702, 704 would have connections to other telephonyservice providers so that they can receive SMS messages from users ofthe other service providers, and so that they can deliver outgoing SMSmessages to other service providers.

One or more internal messaging gateways would handle the distribution ofincoming SMS messages. The internal messaging gateways would also routeSMS messages generated by users if the IP telephony service to otherusers of the service, or to telephony devices registered with anotherseparate telephony service. In the embodiment illustrated in FIG. 7, themessaging gateways are the XMPP servers 710, 712, which are connected tothe SMS gateways 702, 704. Preferably, an IP telephony service wouldmaintain multiple XMPP servers for redundancy, although a single XMPPserver could be used. Each XMPP server would be capable of handling XMPPmessage traffic, although the XMPP servers might also perform otherfunctions.

The XMPP servers would receive incoming SMS messages from the SMSgateways 702, 704 that are being sent from telephony devices registeredwith other telephony service providers and that are addressed totelephone numbers handled by the IP telephony service. The XMPP servers710, 712 would also deliver outbound SMS messages to the SMS gateways702, 704.

In order for the SMS gateways 702, 704 to know which SMS messages todeliver to the XMPP servers 710, 712, the IP telephony service 120 wouldneed to provide the SMS gateways 702, 704 with lists of the telephonenumbers that are assigned to the IP telephony service users. Thisinformation may be stored in the user database 714. This could be doneperiodically through one or more of the XMPP servers, or via anothermeans.

The XMPP servers 710, 712 would process each inbound SMS message. Theprocessing would include copying or storing the SMS message in a messagestorage device 720. The message storage device would retain a copy ofeach incoming SMS message for a predetermined period of time. However,once that time expires, the SMS message may be deleted. In someembodiments, if a SMS message has not been accessed by the party towhich it was sent, it would not be deleted, even if the normal retentiontime has expired.

The XMPP servers would also examine the telephone number to which theSMS message is directed. The XMPP server would then cause a message tobe sent to the client device or devices associated with that telephonenumber to inform the user that there is an incoming SMS message for theuser stored in the message storage system 720. This could occur byhaving the XMPP server send a notice to a call processing service 740that tracks the availability of all client devices, and the IP addressesat which the devices can be reached. In this instance, the XMPP serverwould send a notification to the call processing service 740 indicatingthat a new SMS message for a particular user has been received andcopied into the message storage system. The call processing service 740would then send a message or notification out to the appropriate clientdevice 750, 752, 754 via the Internet.

As explained above, a single telephone number could be associated with agroup of users and/or a group of user devices. That information could bestored in a mapping or user database 714. Thus, when an incoming SMSmessage is received at an XMPP server 710, the XMPP server 710 couldconsult the user database 714 based on the telephone number to which theSMS message is directed. If the XMPP server 710 determines that thetelephone number is connected with a group of users, the XMPP server mayforward the list of users who are to receive the SMS message to the callprocessing service 740 so that the call processing service can send analert message to all of the client devices 750, 752, 754 that areassociated with members of the group.

As explained above, when an incoming telephone call is directed to atelephone number tied to a group of members, the group may havespecified call handling instructions that indicate how the incoming callis to be handled. Likewise, a group of members can also specify howincoming SMS messages are to be handled. These message handlinginstructions can also be stored in the user database 714, or at someother location. When such message handling instructions exist, the IPtelephony service would follow the instructions to ensure that anincoming SMS message is delivered to the appropriate parties.

In some embodiments, an XMPP server might access SMS message handinginstructions for a group at the same time the XMPP server consults theuser database 714 to determine if the telephone number to which an SMSmessage is directed is mapped to a group of users. In this instance, theinformation sent from the XMPP server 710 to the call processing service740 could specify the users that are to receive the incoming SMSmessage.

In other instances, an XMPP server might simply pass the notification ofthe incoming SMS message on to the call processing service 740, and thecall processing service might access the user database 714 to determinewho should receive the SMS message. As noted above, this could includedetermining all of the users that are mapped to the telephone number towhich the SMS message is directed. This could also include accessing SMSmessage handing instructions that specify who should receive the SMSmessage.

Similar to the explanation provided above in connection with incomingcalls, the SMS message handling instructions could be time of day or dayof the week dependent. The SMS handling instructions could also bedependent on the identity of the party that sent the SMS message. All ofthe factors discussed above in connection with incoming call handlinginstructions could apply also to incoming SMS message handlinginstructions.

In the explanation provided above, a call processing service 740 is usedto route a notification about an incoming SMS message to the appropriateclient devices. However, in alternate embodiments the notification aboutan incoming SMS message could be delivered to client devices in otherways. For example, such notifications could come directly from the XMPPservers, or such notifications could be sent through a separate servicethat is not connected with processing incoming telephone calls.

Once a client device receives a notification that an incoming SMSmessage has been received, the client device would request a copy of theSMS message via a messaging web service 730, 732. The client devices750, 752, 754 would send such messages via the Internet. The messagingweb service 730, 732 would then obtain the SMS message from the messagestorage device 720 and forward it on to the client device.

In alternate embodiments, the client devices might obtain the SMSmessage directly from the message storage device 720, or the clientdevices might obtain the SMS message in some other alternate fashion.

As noted above, one member or multiple members of a group mapped to atelephone number may be capable of specifying how incoming SMS or MMSmessages are to be handled. This can include who is to receive copies ofsuch incoming messages. And as also discussed above, those messagehandling instructions could vary based on any number of factors. Theability to specify such message handling instructions might be entrustedto only one member of the group, or such message handling instructionscould be specified by multiple or all members of the group. Similarly,the owner of a group account might be able to assign the ability tospecify message handling instructions.

FIG. 8 illustrates a generalized method of delivering SMS messages tomembers of a user group. The method starts in step S800 where anincoming SMS message is received by the IP telephony service. In stepS802, the IP telephony service determines whether there is a user groupassociated with the telephone number to which the SMS message isdirected. If so, in step S804, the IP telephony service delivers the SMSmessage to the telephony devices of all of the members of the group, orto selected members of the group, based on message handling instructionswhich have been specified for that group.

The call handling instructions for a particular group could indicatethat all incoming telephone calls are to be directed to only a singletelephony device, while the message handling instructions for that groupcould indicate that any incoming SMS messages should be routed to allmembers of the group, or to only a subset of the group. When a usergroup is organized in this fashion, all incoming telephone calls aredirected to a single telephony device, whereas all incoming SMS messagesare directed to multiple members of the group. Thus, the way in whichtelephone calls are handled for a particular group could differ from theway in which SMS messages are handled for that group.

The SMS message handling instructions could also specify the way inwhich outgoing SMS messages and reply messages are to be handled. Forinstance, the SMS handling instructions could indicate that whenever amember of a group sends an outgoing SMS message, or a reply to areceived SMS message, a copy of that message is sent to all members ofthe group. Alternatively, if the SMS message handling instructionsindicate that only some members of the group should receive an incomingSMS message, if one of the members replies to the message, the replymight only be sent to those group members that originally received acopy of the incoming SMS message. In still other instances, the SMSmessage handling instructions might specify that copies of replymessages should never be sent to other members of the group. The SMSmessage handling instructions related to reply messages could beconfigured in any fashion that is sensible or advantageous to themembers of the group.

The SMS message handling instructions could differ for reply messagesand simply new outgoing messages. For instance, the SMS message handlinginstructions might indicate that a copy of a reply message is sent toonly those members that received the original incoming SMS message. Thehandling instructions might also indicate that all members of the groupshould receive a copy of all completely new outgoing messages, or thatno members should be copied on any outgoing messages.

The handling instructions for reply and outgoing messages might alsodiffer for different members of the group. For example, if the group ofmembers of is an immediate family, the SMS handling instructions mightindicate that copies of all outgoing and reply SMS messages sent fromthe children in the family also be sent to the parents. However, thecall handling instructions might also indicate that the children arenever to be copied on outgoing and/or reply messages sent from theparents.

The SMS message handling instructions might also be considered a defaultinstruction that could he modified on a case by case basis by the personsending a reply message. For instance, the system might follow the SMSmessage handling instructions for reply messages unless the personsending a reply requests that the reply message be handled in adifferent fashion. Those special handling instructions could bespecified by the user with a graphical user interface, or via speechbased commands, as has been described above in connection with selectingan originating telephone number or billing account.

Likewise, a user group could establish a set of handling instructionsthat apply when a member of the group sends a SMS message to someoneoutside the group. And here again, those handling instructions could beconsidered default handling instructions that could be modified on acase by case basis by the person sending the SMS message.

In those instances where a user of a group is attempting to alter thedefault message handling instructions, the group might grant thispermission to certain members of the group, but not to others. Apermission to alter a default message handling rule could be allocatedto the members of the group on a rule by rule basis and on a user byuser basis. And the owner or account holder of the group might be theonly user who can assign such permissions. In alternate embodiments, theowner or account holder might be able to assign the ability to grantsuch permissions to other members of the group.

In the case of outgoing and/or reply SMS messages, there would be adistinction between outgoing and reply messages that are to be deliveredto telephone devices registered within the IP telephony service, andoutgoing and reply SMS messages that are being sent to telephony deviceregistered with other telephony service providers.

All SMS messages and reply messages generated by devices registered withthe IP telephony service would first be sent to one of the XMPP servers710, 712. The XMPP server would check to determine if the telephonenumber to which the SMS message is directed is one of the telephonenumbers controlled by the IP telephony service, or a telephone number ofa device registered with another telephony service.

If the message is being sent to a telephone number controlled by the IPtelephony service, the XMPP server would then process the message in afashion similar to how inbound SMS messages received from the SMSgateways are processed. If the SMS message is directed to a telephonenumber of a telephony device registered with another service, the XMPPserver would send the SMS message to one of the SMS gateways fordelivery through another telephony service.

In some instances a member of a group may wish to send a private SMSmessage to another member of the group. However, the system may alsoprovide each group with a SMS “message board” that reflects all SMSmessages that have recently been sent by all members of the group to allthe other members of the group. The members of the group would be ableto easily access and review the “message board.” In some embodiments,the message board would be “threaded” to graphically illustrate thepattern of message and response from the members of the group. Also, thepresentation of the messages may provide an indication to the user aboutwhich messages he has previously seen, and which are new since the lasttime the user viewed the message board. The message board would providea convenient way for the members of the group to stay in touch with oneanother.

As is known to those skilled in the art, certain types of telephonydevices, such as Apple iPhones, are configured to receive push messagesthat indicate the availability of some information. The SMS messagingsystem would be capable of sending such push messages to effect deliveryof SMS messages to those devices.

A system as described above could also be used to deliver instantmessages. It is common for a single user to be associated with multipledifferent instant messaging platforms. In this instance, a user couldspecify, within a first one of the instant messaging platforms, each ofthe other instant messaging platforms where the user has an instantmessaging presence. Once that is done, whenever an instant messagedirected to the user is received by the first instant messagingplatform, the first instant messaging platform would deliver the messageto the user directly, and the first instant messaging platform wouldalso cause the same message to be delivered through all of the otherinstant messaging platforms specified for the user.

FIG. 9 illustrates a method which results in the delivery of an instantmessage through multiple different instant messaging platforms. As shownin FIG. 9, the method begins in step S900 where the system would receivea request to deliver an instant message directed to a particular user.In step S902, the system would check to determine if the user to whichthe instant message is directed is associated with a user group. If so,the system would determine all of the instant messaging platforms thatare associated with that user group. In step S904, the system would thendeliver the same instant message to all of the different instantmessaging platforms that are associated with the user group.

In the examples provided above, it was assumed that the users themselveswould establish user groups, and that the telephone calls, SMS messagesand instant messages would originate from private parties. However, theuser group concepts explained above could be used by a IP service todeliver information, advertising content or other messages to selectedgroups of users.

A IP system could create user groups which are defined based on commonaspects of the users. For example, the IP system could create a usergroup where all members of the user group are males between the ages of20 and 30. The IP system could then periodically send information to themembers of that group via audio recordings. This would be accomplishedby ringing the group members' telephony devices, and when the usersanswer, playing an audio recording to the users. Information could alsobe delivered to members of the user group via SMS messages and/orinstant messages. The messages sent to that user group would be tailoredto be of particular interest to the user group.

Once the IP system establishes user groups based on demographics of theusers, the IP system might also offer to deliver advertising messages tomembers of particular user groups on behalf of third party companies.Because the IP system would be able to deliver the advertising messagesto targeted audiences, the IP system may be able to charge premiumprices to deliver targeted advertisements to the user group members.

In many of the systems and methods described above, it is assumed thattelephony devices or client devices will have software which is runningon the device and which enables the device to interact with the IPtelephony service elements to effect the systems and methods. Thesoftware for such devices could be downloaded to the telephony devicesvia many different ways. The software could be downloaded and installedvia a memory device that couples to the telephony device, or suchsoftware could be downloaded via a network connection, either wired orwireless. Likewise, new and different software could be loaded upon atelephony device and caused to run whenever the system needs to installsuch software to effect a certain purpose. Similarly, software updatesand revisions could be automatically loaded on such telephony devicesupon the instruction of the IP telephony service, or upon the user'sinstructions.

Currently, when a user wishes to place a telephone call or wishes tosend a SMS and/or MMS message, the user will use a telephone number todirect the communication to the appropriate party. It is anticipatedthat in the future, it may not be necessary to address suchcommunications to the appropriate party or parties using a telephonenumber. Instead, it is anticipated that other forms of identifiers willbe used to direct communications to the appropriate party or parties.Any reference herein, or in the following claims, to dialing a telephonenumber to place a telephone call or to sending a SMS or MMS messagedirected to particular telephone number is intended to also encompasssending such communications to an appropriate party or parties using anyother form of identifier.

For example, in the foregoing description, members of a user group areable to initiate a telephone call to another member of the group byselecting an alias for the other member on a graphical user interface.Users may also be able to initiate telephone calls and/or send messagesto other people using such aliases, or using any other form ofidentifier that uniquely identities a person, or a group of users.

In the foregoing description and in the following claims, references aremade to various types of “units.” The term unit is intended to encompassone or more devices that accomplish a particular function. Thus, a unitcould be a single device that accomplishes a function, or a unit couldbe multiple devices that operate to accomplish a function. Wheremultiple devices make up a unit, those devices could be co-located, orlocated at completely different places. Likewise, multiple devices thatmake up a unit could be electronically or physically coupled to oneanother, or completely disconnected from each other. Further, thedevices that make up a unit cold communicate with one another, or therecould be virtually no communication between the devices.

While the technology has been described in connection with what ispresently considered to be the most practical and preferred embodiments,it is to be understood that the technology is not to be limited to thedisclosed embodiments, but on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the spirit andscope of the appended claims.

1. A method of processing communication requests based on handlinginstructions in an Internet Protocol (IP) environment, comprising:receiving a communication request that includes a user group identifier;obtaining communication handling instructions for the user group basedon the user group identifier, wherein the communication handlinginstructions indicate which members of the group should receive thecommunication; obtaining communication device identifiers for thosemembers of the group that should receive the communication; andattempting to terminate the communication request to a communicationdevice of at least one member of the group based on the communicationhandling instructions and the obtained communication device identifiers.2. The method of claim 1, wherein the communication handlinginstructions are time of day dependent, and wherein the attempting stepis also based on the time of day that the communication request isreceived.
 3. The method of claim 1, wherein the communication handlinginstructions are time of day dependent, and wherein the attempting stepis also based on the time of day at the locations of each of thecommunication devices of those members of the group that should receivethe communication.
 4. The method of claim 1, wherein the communicationhandling instructions are day of the week dependent, and wherein theattempting step is also based on the day of the week that thecommunication request is received.
 5. The method of claim 1, wherein thecommunication request is an incoming telephone call, wherein thecommunication handing instructions indicate that the incoming telephonecould be terminated any of a plurality of members of the group, andwherein the attempting step comprises: ringing the communicationsdevices for all of the plurality of members of the group; andterminating the call to the first communications device to answer thecall.
 6. The method of claim 1, wherein the communication request is anincoming telephone call, wherein the communication handing instructionsindicate that the incoming telephone could be terminated any of aplurality of members of the group, and wherein the attempting stepcomprises: ringing the communications devices for all of the pluralityof members of the group for a predetermined period of time; andconnecting the incoming call to all of the communications devices thatanswer the call before the predetermined period of time expires.
 7. Themethod of claim 1, wherein the communication request is an incoming SMSmessage, wherein the communication handling instructions indicate thatthe SMS message should be delivered to a plurality of members of thegroup, and wherein the attempting step comprises attempting to deliverthe SMS message to the communications devices of the plurality ofmembers of the group.
 8. A system for processing communication requestsbased on handling instructions in an Internet Protocol (IP) environment,comprising: means for receiving a communication request that includes auser group identifier; means for obtaining communication handlinginstructions for the user group based on the user group identifier,wherein the communication handling instructions indicate which membersof the group should receive the communication; means for obtainingcommunication device identifiers for those members of the group thatshould receive the communication; and means for attempting to terminatethe communication request to a communication device of at least onemember of the group based on the communication handling instructions andthe obtained communication device identifiers.
 9. A system forprocessing communication requests based on handling instructions in anInternet Protocol (IP) environment, comprising: a receiving unit thatreceives a communication request that includes a user group identifier;an handling instruction unit that obtains communication handlinginstructions for the user group based on the user group identifier,wherein the communication handling instructions indicate which membersof the group should receive the communication; a device identifier unitthat obtains communication device identifiers for those members of thegroup that should receive the communication; and a termination unit thatattempts to terminate the communication request to a communicationdevice of at least one member of the group based on the communicationhandling instructions and the obtained communication device identifiers.10. The system of claim 9, wherein the communication handlinginstructions are time of day dependent, and wherein the termination unitattempts to terminate the communication request based on the time of daythat the communication request is received.
 11. The system of claim 9,wherein the communication handling instructions are time of daydependent, and wherein the termination units attempts to terminate thecommunication request based on the time of day at the locations of eachof the communication devices of those members of the group that shouldreceive the communication.
 12. The system of claim 9, wherein thecommunication handling instructions are day of the week dependent, andwherein the termination unit attempts to terminate the communicationrequest based on the day of the week that the communication request isreceived.
 13. The system of claim 9, wherein the communication requestis an incoming telephone call, wherein the communication handinginstructions indicate that the incoming telephone could be terminatedany of a plurality of members of the group, and wherein the terminationunit causes the communication devices for all of the plurality ofmembers of the group to ring, and then terminates the call to the firstcommunication device to answer the call.
 14. The system of claim 9,wherein the communication request is an incoming telephone call, whereinthe communication handing instructions indicate that the incomingtelephone could be terminated any of a plurality of members of thegroup, and wherein the termination unit causes the communications devicefor all of the plurality of members of the group to ring for apredetermined period of time, and connects the incoming call to all ofthe communication devices that answer the call before the predeterminedperiod of time expires.
 15. The system of claim 9, wherein thecommunication request is an incoming SMS message, wherein thecommunication handling instructions indicate that the SMS message shouldbe delivered to a plurality of members of the group, and wherein thetermination unit attempts to deliver the SMS message to thecommunications devices of the plurality of members of the group.